<?php

require_once('NomeProgramaDAO.php');

class NomePrograma
{
     private $id;               // Chave-primária do programa no banco de dados
     private $ano;              // Objeto do tipo Ano referente ao ano em exerc�cio deste programa.
     private $nome;             // Nome do programa
     private $dao;              // Objeto para acesso ao banco de dados

     public function __set( $var, $val )
     {
            $this->$var = $val;
     }

     public function __get( $var )
     {
            return $this->$var;
     }

     public function __construct( $id = NULL, $ano = NULL, $nome = NULL)
     {
            $this->id = $id;
            $this->ano = $ano;
            $this->nome = $nome;
            $this->dao = new NomeProgramaDAO();
     }
     
     public function CadastrarPrograma()
     {
     	$resultado = $this->dao->CadastrarPrograma($this);
     	return $resultado;
     }
     
     public function AlterarPrograma(){
     	$resultado = $this->dao->AlterarPrograma($this);
     	return $resultado;
     }
     
     public function Delete( $programaId )
     {
     	$resutlado = $this->dao->ExcluirPrograma( $programaId );
     	return $resutlado;
     }
   	

     /**
     Busca na tabela t_nome_programa por todos os registros de programa que possuam chave-estrangeira $anoId.
     Para cada registro encontrado ser� criada uma inst�ncia de Programa com os valores das colunas do registro em quest�o.
     Por fim, caso sejam encontrados registros, todas as inst�ncias criadas ser�o inseridas dentro de um array que ser� retornado por este m�todo.
     Caso contr�rio, ser� retornado FALSE indicando que n�o foi encontrado nenhum registro.
     @anoId - Chave-prim�ria do ano ao qual o programa est� vinculado.
     @return - Retorna um array de objetos do tipo Programa. Caso n�o encontre nenhum resultado, retorna FALSE.
     */
     public function CarregarProgramas( $anoId )
     {
            $resultado = $this->dao->LoadProgramas( $anoId );
            return $resultado;
     }
     
     /**
     Busca na tabela t_nome_programa pelo registro associado � chave-prim�ria $id.
     Caso um registro seja encontrado ser� criada uma inst�ncia de Programa com os valores das colunas do registro em quest�o.
     @id - Chave-prim�ria do Programa cadastrado no banco de dados.
     @return - Retorna um objeto Programa com as informa��es encontradas no registro. Caso n�o encontre nenhum resultado, retorna FALSE.
      */
     public function CarregarPrograma( $id )
     {
            $resultado = $this->dao->LoadPrograma( $id );
            return $resultado;
     }

}
?>
